using System;
using System.Collections.Generic;
using System.Text;
using System.Data.Common;
using System.Data;
using XBLib.Dal.AdoDal;
using DataInfo;
using KenLib.Common;
namespace KenLib.Dal
{
    public class 所属情報Dao : BaseAdoDao
      {
          private string m_requestTime;
          private string m_displayTime;
          public int Insert(所属情報 obj)
          {
              int i = 0;
              try
              {
                  m_requestTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                  DbParameter param20 = _daoHelper.CreateParameter("@廃止区分", obj.廃止区分, DbType.Int16);
                  DbParameter param1 = _daoHelper.CreateParameter("@兼務", obj.兼務, DbType.Int32);
                  DbParameter param2 = _daoHelper.CreateParameter("@部門コード", obj.部門コード, DbType.Int32);
                  DbParameter param3 = _daoHelper.CreateParameter("@部門名", obj.部門名, DbType.String);
                  DbParameter param4 = _daoHelper.CreateParameter("@部門英語名", obj.部門英語名, DbType.String);
                  DbParameter param5 = _daoHelper.CreateParameter("@部門略称", obj.部門略称, DbType.String);
                  DbParameter param6 = _daoHelper.CreateParameter("@組織タイプ", obj.組織タイプ, DbType.String);
                  DbParameter param7 = _daoHelper.CreateParameter("@組織コード", obj.組織コード, DbType.Int32);
                  DbParameter param8 = _daoHelper.CreateParameter("@役職コード", obj.役職コード, DbType.Int32);
                  DbParameter param9 = _daoHelper.CreateParameter("@役職", obj.役職, DbType.String);
                  DbParameter param10 = _daoHelper.CreateParameter("@発令開始日", obj.発令開始日, DbType.DateTime);
                  DbParameter param11 = _daoHelper.CreateParameter("@発令終了日", obj.発令終了日, DbType.DateTime);
                  DbParameter param12 = _daoHelper.CreateParameter("@実際開始日", obj.実際開始日, DbType.DateTime);
                  DbParameter param13 = _daoHelper.CreateParameter("@実際終了日", obj.実際終了日, DbType.DateTime);
                  DbParameter param14 = _daoHelper.CreateParameter("@変更理由", obj.変更理由, DbType.String);
                  DbParameter param15 = _daoHelper.CreateParameter("@勤務地コード", obj.勤務地コード, DbType.Int32);
                  DbParameter param16 = _daoHelper.CreateParameter("勤務地", obj.勤務地, DbType.String);
                  DbParameter param17 = _daoHelper.CreateParameter("@部門ＩＤ", obj.部門ＩＤ, DbType.Int32);
                  DbParameter param18 = _daoHelper.CreateParameter("@社員ID", obj.社員ID, DbType.Int32);
                  DbCommand command = _daoHelper.CreateCommand(CommandNameManager.Insert_HumanDivisionInfo, CommandType.StoredProcedure,param20, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18);
                  i = _daoHelper.Execute(command);
                  m_displayTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                  ExportFile.WriteLog("", "", "INSERT", "Insert_HumanDivisionInfo", m_requestTime, m_displayTime);
              }
              catch (Exception ex)
              {
                  m_displayTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                  ExportFile.WriteErr("", "", "SELECT", ex.Message, m_requestTime, m_displayTime);
              }
              return i;
          }

          public int Update(所属情報 obj)
          {
              int i = 0;
              try
              {
                  m_requestTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                  DbParameter param20 = _daoHelper.CreateParameter("@廃止区分", obj.廃止区分, DbType.Int16);
                  DbParameter param0 = _daoHelper.CreateParameter("@ID", obj.ID, DbType.Int32);
                  DbParameter param1 = _daoHelper.CreateParameter("@兼務", obj.兼務, DbType.Int32);
                  DbParameter param2 = _daoHelper.CreateParameter("@部門コード", obj.部門コード, DbType.Int32);
                  DbParameter param3 = _daoHelper.CreateParameter("@部門名", obj.部門名, DbType.String);
                  DbParameter param4 = _daoHelper.CreateParameter("@部門英語名", obj.部門英語名, DbType.String);
                  DbParameter param5 = _daoHelper.CreateParameter("@部門略称", obj.部門略称, DbType.String);
                  DbParameter param6 = _daoHelper.CreateParameter("@組織タイプ", obj.組織タイプ, DbType.String);
                  DbParameter param7 = _daoHelper.CreateParameter("@組織コード", obj.組織コード, DbType.Int32);
                  DbParameter param8 = _daoHelper.CreateParameter("@役職コード", obj.役職コード, DbType.Int32);
                  DbParameter param9 = _daoHelper.CreateParameter("@役職", obj.役職, DbType.String);
                  DbParameter param10 = _daoHelper.CreateParameter("@発令開始日", obj.発令開始日, DbType.DateTime);
                  DbParameter param11 = _daoHelper.CreateParameter("@発令終了日", obj.発令終了日, DbType.DateTime);
                  DbParameter param12 = _daoHelper.CreateParameter("@実際開始日", obj.実際開始日, DbType.DateTime);
                  DbParameter param13 = _daoHelper.CreateParameter("@実際終了日", obj.実際終了日, DbType.DateTime);
                  DbParameter param14 = _daoHelper.CreateParameter("@変更理由", obj.変更理由, DbType.String);
                  DbParameter param15 = _daoHelper.CreateParameter("@勤務地コード", obj.勤務地コード, DbType.Int32);
                  DbParameter param16 = _daoHelper.CreateParameter("勤務地", obj.勤務地, DbType.String);
                  DbParameter param17 = _daoHelper.CreateParameter("@部門ＩＤ", obj.部門ＩＤ, DbType.Int32);
                  DbParameter param18 = _daoHelper.CreateParameter("@社員ID", obj.社員ID, DbType.Int32);
                  DbCommand command = _daoHelper.CreateCommand(CommandNameManager.Update_HumanDivisionInfo, CommandType.StoredProcedure,param20, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18);
                  i = _daoHelper.Execute(command);
                  m_displayTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                  ExportFile.WriteLog("", "", "UPDATE", "Update_HumanDivisionInfo", m_requestTime, m_displayTime);
              }
              catch (Exception ex)
              {
                  m_displayTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                  ExportFile.WriteErr("", "", "SELECT", ex.Message, m_requestTime, m_displayTime);
              }
              return i;
          }

          public int Delete(int id)
          {
              int i = 0;
              try
              {
                  m_requestTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                  DbParameter param0 = _daoHelper.CreateParameter("@ID", id, DbType.Int32);

                  DbCommand command = _daoHelper.CreateCommand(CommandNameManager.Delete_HumanDivisionInfo, CommandType.StoredProcedure, param0);
                  i = _daoHelper.Execute(command);
                  m_displayTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                  ExportFile.WriteLog("", "", "DELETE", "Delete_HumanDivisionInfo", m_requestTime, m_displayTime);
              }
              catch (Exception ex)
              {
                  m_displayTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                  ExportFile.WriteErr("", "", "SELECT", ex.Message, m_requestTime, m_displayTime);
              }
              return i;
          }

          // New code by Hunglt 
          public DataTable Select部門コード()
          {
              DbCommand command = _daoHelper.CreateCommand("sp_select_部門コード_Hunglt", CommandType.StoredProcedure);
              return _daoHelper.Query(command);
          }

          public DataTable Select役職コード()
          {
              DbCommand command = _daoHelper.CreateCommand("sp_select_役職コード_Hunglt", CommandType.StoredProcedure);
              return _daoHelper.Query(command);
          }

          public void Insert所属情報(所属情報 obj) 
          {
              DbParameter param廃止区分 = _daoHelper.CreateParameter("@廃止区分", obj.廃止区分, DbType.Int16);
              DbParameter param兼務 = _daoHelper.CreateParameter("@兼務", obj.兼務, DbType.Int32);
              DbParameter param部門コード = _daoHelper.CreateParameter("@部門コード", obj.部門コード, DbType.String);
              DbParameter param部門名 = _daoHelper.CreateParameter("@部門名", obj.部門名, DbType.String);
              DbParameter param部門英語名 = _daoHelper.CreateParameter("@部門英語名", obj.部門英語名, DbType.String);
              DbParameter param部門略称 = _daoHelper.CreateParameter("@部門略称", obj.部門略称, DbType.String);
              DbParameter param役職コード = _daoHelper.CreateParameter("@役職コード", obj.役職コード, DbType.Int32);
              DbParameter param役職 = _daoHelper.CreateParameter("@役職", obj.役職, DbType.String);
              DbParameter param発令開始日 = _daoHelper.CreateParameter("@発令開始日", obj.発令開始日, DbType.DateTime);
			  DbParameter param発令終了日 = _daoHelper.CreateParameter("@発令終了日", obj.発令終了日, DbType.DateTime);
              DbParameter param勤務地 = _daoHelper.CreateParameter("@勤務地", obj.勤務地, DbType.String);
              DbParameter param社員ID = _daoHelper.CreateParameter("@社員ID", obj.社員ID, DbType.Int32);

              DbCommand command = _daoHelper.CreateCommand("sp_Insert_FrmO_EmpDivisionInput_Hunglt", CommandType.StoredProcedure,
                  param廃止区分, param兼務, param部門コード, param部門名, param部門英語名, param部門略称, param役職コード
                  , param役職, param発令開始日, param発令終了日, param勤務地, param社員ID);
              _daoHelper.Query(command);
          }

		  public void Update所属情報(所属情報 obj)
		  {
			  DbParameter param廃止区分 = _daoHelper.CreateParameter("@廃止区分", obj.廃止区分, DbType.Int16);
			  DbParameter param兼務 = _daoHelper.CreateParameter("@兼務", obj.兼務, DbType.Int32);
			  DbParameter param部門コード = _daoHelper.CreateParameter("@部門コード", obj.部門コード, DbType.String);
			  DbParameter param部門名 = _daoHelper.CreateParameter("@部門名", obj.部門名, DbType.String);
			  DbParameter param部門英語名 = _daoHelper.CreateParameter("@部門英語名", obj.部門英語名, DbType.String);
			  DbParameter param部門略称 = _daoHelper.CreateParameter("@部門略称", obj.部門略称, DbType.String);
			  DbParameter param役職コード = _daoHelper.CreateParameter("@役職コード", obj.役職コード, DbType.Int32);
			  DbParameter param役職 = _daoHelper.CreateParameter("@役職", obj.役職, DbType.String);
			  DbParameter param発令開始日 = _daoHelper.CreateParameter("@発令開始日", obj.発令開始日, DbType.DateTime);
			  DbParameter param発令終了日 = _daoHelper.CreateParameter("@発令終了日", obj.発令終了日, DbType.DateTime);
			  DbParameter param勤務地 = _daoHelper.CreateParameter("@勤務地", obj.勤務地, DbType.String);
			  DbParameter param社員ID = _daoHelper.CreateParameter("@社員ID", obj.社員ID, DbType.Int32);

			  DbCommand command = _daoHelper.CreateCommand("sp_Update_FrmO_EmpDivisionInput_Hunglt", CommandType.StoredProcedure,
				  param廃止区分, param兼務, param部門コード, param部門名, param部門英語名, param部門略称, param役職コード
				  , param役職, param発令開始日, param発令終了日, param勤務地, param社員ID);
			  _daoHelper.Query(command);
		  }

          public DataTable SelectData所属情報(int 社員ID)
          { 
              DbParameter param社員ID = _daoHelper.CreateParameter("@社員ID", 社員ID, DbType.Int32);
              DbCommand command = _daoHelper.CreateCommand("sp_select_所属情報_Hunglt", CommandType.StoredProcedure, param社員ID);
              return _daoHelper.Query(command); // _businessObjectHelper.FillToList<所属情報>(_daoHelper.Query(command));
          }

		  public DataTable select所属情報by社員ID(int 社員ID)
		  {
			  DbParameter param社員ID = _daoHelper.CreateParameter("@社員ID", 社員ID, DbType.Int32);
			  DbCommand command = _daoHelper.CreateCommand("sp_select_所属情報_frmO_EmpDivisionInput_Hunglt", CommandType.StoredProcedure, param社員ID);
			  return _daoHelper.Query(command);
		  }

          public void UpdateInfo所属情報(所属情報 obj) {
              DbParameter dbParam廃止区分 = _daoHelper.CreateParameter("@廃止区分", obj.廃止区分, DbType.Int32);
              DbParameter dbParam勤務地コード = _daoHelper.CreateParameter("@勤務地コード", obj.勤務地コード, DbType.Int32);
              DbParameter dbParam勤務地 = _daoHelper.CreateParameter("@勤務地", obj.勤務地, DbType.String);
              DbParameter param社員ID = _daoHelper.CreateParameter("@社員ID", obj.社員ID, DbType.Int32);

              DbCommand dbcommand = _daoHelper.CreateCommand("sp_update_所属情報_FormJ_Hunglt", CommandType.StoredProcedure,
                 dbParam廃止区分, dbParam勤務地コード, dbParam勤務地, param社員ID);
              _daoHelper.Execute(dbcommand);
          }
      }
}
